using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;

namespace Easy.Geo.Kml
{
    public class NetworkLink : Feature
    {
        public NetworkLink() 
            : base() 
        {
            this._flyToView = KBool.False;
            this._refreshVisibility = KBool.False;
            this._Link = new Link();
        }
        public NetworkLink(string name) 
            : base(name) 
        {
            this._flyToView = KBool.False;
            this._refreshVisibility = KBool.False;
            this._Link = new Link();
        }
        public NetworkLink(string name, Link Link)
            : this(name)
        {
            this._Link = Link;
        }
        public NetworkLink(string name, KBool visibility, KBool open)
            : base(name, visibility, open)
        {
            this._Link = new Link();
        }
        public NetworkLink(string name, KBool visibility, KBool open, KBool flyToView)
            : this(name, visibility, open)
        {
            this._flyToView = flyToView;
        }
        public NetworkLink(string name, KBool visibility, KBool open, Link Link, KBool refreshVisibility,
            KBool flyToView)
            : this(name, visibility, open, flyToView)
        {
            this._Link = Link;
            this._refreshVisibility = refreshVisibility;            
        }
        public NetworkLink(string id, string name, KBool visibility, string address, string description,
            string styleUrl, ExtendedData ExtendedData, KBool open, Link Link, KBool refreshVisibility,
            KBool flyToView)
            : base(id, name, visibility, address, description, styleUrl, ExtendedData, open)
        {
            this._Link = Link;
            this._refreshVisibility = refreshVisibility;
            this._flyToView = flyToView;
        }

        private Link _Link;
        [XmlElement(ElementName = "Link")]
        public Link Link
        {
            get { return _Link; }
            set { _Link = value; }
        }
        private KBool _refreshVisibility;
        [XmlElement(ElementName = "refreshVisibility")]
        public KBool RefreshVisibility
        {
            get { return _refreshVisibility; }
            set { _refreshVisibility = value; }
        }
        private KBool _flyToView;
        [XmlElement(ElementName = "flyToView")]
        public KBool FlyToView
        {
            get { return _flyToView; }
            set { _flyToView = value; }
        }
    }
}
